有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java非法启动表达式/尚未对编码充满信心欢迎帮助

我刚开始上计算机科学的第二节课。这学期我们正在做第一个使用java的项目。项目中的第一种方法需要一种静态方法,可以根据学分计算大学生的账单

我遇到的主要问题是用我的私有int和私有double非法启动表达式。我们做了一个inclass示例,在这个示例中,我们在一个非静态方法中私有化了int和double,效果很好。静态和非静态之间有什么区别吗?如果有,我必须做些什么来纠正它

public class MyLibrary
{
    public static double CalcFree (int c) throws creditException        //integer c to represent total credits
    {
        private int credits;
        private double bill;

        if ( c > 1 && c < 33)       //providing valid range of options for total number of credits

            c = credits;

        else

            new creditException ("Invalid number of credits.");

        if ( c > 12)
        {
            bill = credits * 110 + 50 + 20;
            return bill;
        }

        else
        {
            bill = credits * 110 + 50;
            return bill;
        }

    }

}

共 (2) 个答案

  1. # 1 楼答案

    问题在于CalcFree (int c)方法中的这两行:

    private int credits;
    private double bill;
    

    private从两者中移除

    注意:c = credits;必须更改为credits=c;,正如TNT正确指出的那样

    您可以为实例变量指定访问修饰符,但不能为局部变量指定访问修饰符

    给局部变量起一个不同于实例变量的名称也是一种很好的做法

  2. # 2 楼答案

    改变

    private int credits;
    private double bill
    

    int credits;
    double bill
    

    CalcFree()内,因为您可以在CalcFree()方法中声明局部变量,局部变量不能是private/public/protected,等,但它们可以是final